package com.test.service;

import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;

/**
 * 支付宝支付服务接口
 * 该接口定义了与支付宝支付相关的操作，如应用支付、退款、账单查询和交易查询
 */
public interface AlipayService {

    /**
     * 应用支付方法
     * 用于生成支付请求，以便用户可以通过支付宝进行支付
     *
     * @param manageId 支付管理ID，用于标识此次支付请求
     * @return 返回支付相关信息，具体结构依赖于支付宝的API
     */
    String appPay(String manageId);

    /**
     * 退款方法
     * 发起退款请求，用于取消已支付的订单
     *
     * @param manageId 支付管理ID，标识需要退款的支付记录
     */
    void refund(String manageId);

    /**
     * 账单查询方法
     * 获取支付宝账户的账单信息
     *
     * @return 返回账单信息，具体结构依赖于支付宝的API
     */
    String bill();

    /**
     * 交易查询方法
     * 用于查询特定交易的状态和详细信息
     *
     * @param map 包含交易查询所需参数的映射，如交易号等
     * @return 返回交易查询结果，具体结构依赖于支付宝的API
     */
    String tradeQuery(HashMap<String, Object> map);

    /**
     * 支付通知处理方法
     * 当支付宝处理完支付、退款等操作后，会通过此方法通知商户服务器
     *
     * @param request HTTP请求，包含支付宝发送的通知数据
     */
    void notify(HttpServletRequest request);
}
